import React from 'react';
    import { Navigate, useLocation } from 'react-router-dom';
    import routes from './routeConfig';

    /**
     * 受保护的路由组件
     * 如果用户未认证，则重定向到登录页面
     * 
     * @param {Object} props - 组件属性
     * @param {boolean} props.isAuthenticated - 用户是否已认证
     * @param {React.ReactNode} props.children - 子组件
     * @returns {React.ReactNode} 如果已认证则返回子组件，否则重定向到登录页面
     */
    const ProtectedRoute = ({ isAuthenticated, children }) => {
      const location = useLocation();

      if (!isAuthenticated) {
        // 将当前路径保存在重定向参数中，以便登录后返回
        return <Navigate to={`${routes.login}?redirect=${encodeURIComponent(location.pathname)}`} replace />;
      }

      return children;
    };

    export default ProtectedRoute;
